home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 65.zip / BS1 part 65 / Math Visin v2.1 disk 1.adf / Arexx.WB / Simple / PolyGraph < prev    next >
Text File  |  1992-02-12  |  2KB  |  69 lines

  1. /* PolyGraph   make MathVision plot a series of graphs      31-Jan-90 dh
  2.  
  3.   This program plots a series of Simple graphs, which are assumed to be
  4. expressed one per line.  For example, to plot "sin(x)", "x^2", and "x^3-3":
  5.  
  6.   FA: sin(x)
  7.   FB: x^2
  8.   FC: x^3-3
  9.  
  10.   For each non-empty function line, beginning with FA, this will plot 
  11. that function.  This will stop at the first empty line, so leave an empty
  12. line before your other stuff.
  13.  
  14. ===========================================================================*/
  15.  
  16. ADDRESS "MathVision"
  17. OPTIONS RESULTS
  18. NUMERIC DIGITS 14
  19.  
  20. EditScreenToFront
  21.  
  22. LastFunction = 9
  23. DO I = 1 TO LastFunction   /* create array of function names */
  24.   Fun.I = "F"D2C(I+64)     /* FA, FB, FC... */
  25. END
  26.  
  27. MinimumY = 1e308     /* Find range of Y for all functions */
  28. MaximumY = -1e308
  29. StopSign "F"
  30. DO I = 1 TO LastFunction
  31.   Get Fun.I
  32.   IF (RESULT ~= "RESULT") THEN   /* this function exists? */
  33.   DO
  34.     F0 Fun.I'" Finding Minimum and Maximum'
  35.     GuessYminYmax
  36.     Get Ymin
  37.     MinimumY = Min( MinimumY, RESULT )
  38.     Get Ymax
  39.     MaximumY = Max( MaximumY, RESULT )
  40.     Get StopSign
  41.     IF (RESULT="T") THEN EXIT
  42.   END
  43.   ELSE BREAK
  44. END
  45. Ymin MinimumY        /* set the cumulative min and max */
  46. Ymax MaximumY
  47.  
  48. Overplot T        /* now plot them all */
  49. EraseScreen
  50. PlotScreenToFront
  51. SimplePen 1
  52.  
  53. DO I = 1 TO LastFunction
  54.   Get Fun.I
  55.   IF (RESULT ~= "RESULT") THEN   /* this function exists? */
  56.   DO
  57.     F0 Fun.I
  58.     SimplePen I
  59.     PlotSimple
  60.     Get Fun.I
  61.     Expression = RESULT
  62.     Text 10" "I*10" "I" "Expression
  63.     Get StopSign
  64.     IF (RESULT="T") THEN EXIT
  65.   END
  66.   ELSE BREAK
  67.  
  68. END
  69.